home *** CD-ROM | disk | FTP | other *** search
/ Nature Interactive / Nature Interactive.ISO / pc / setup / nature.mst < prev    next >
Encoding:
Text File  |  1996-07-29  |  10.2 KB  |  318 lines

  1. '*************************************************************************
  2. '*                       MSSetup Toolkit main
  3. '**************************************************************************
  4.  
  5. '$INCLUDE 'setupapi.inc'
  6. '$INCLUDE 'msdetect.inc'      
  7.  
  8. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING 
  9. DECLARE FUNCTION ShowMaxWindow LIB "MSCUISTF.DLL" (hwnd%) AS INTEGER
  10. DECLARE FUNCTION RestartWindows LIB "MSCUISTF.DLL" () AS INTEGER
  11. DECLARE FUNCTION WritePrivateProfileString LIB "kernel" (szSection$, szEntry$, szString$, szFileName$) AS INTEGER
  12. DECLARE FUNCTION Has256 LIB "MSCUISTF.DLL" (hwnd%) AS INTEGER
  13. DECLARE FUNCTION Has640 LIB "MSCUISTF.DLL" (hwnd%) AS INTEGER
  14. DECLARE FUNCTION HasWave LIB "MSCUISTF.DLL" () AS INTEGER
  15.  
  16.  
  17. DECLARE FUNCTION InstallQTW AS INTEGER
  18. DECLARE FUNCTION FindOld AS INTEGER
  19.  
  20. CONST TRUE            = 1
  21. CONST FALSE            = 0
  22. '-------------------------------Dialog ID's------------------------------
  23. CONST NOT256            = 402
  24. CONST NOGOODRESO        = 403
  25. CONST NOWAVE             = 404
  26. CONST NOGOODWINVER        = 401
  27. CONST FINDQTW            = 110
  28. CONST NOQTW                 = 111
  29. CONST WANTRESTART        = 405
  30.  
  31. CONST WELCOME            = 100
  32. CONST EXITFAILURE        = 400
  33. CONST EXITQUIT            = 600
  34. CONST EXITSUCCESS        = 700
  35.  
  36. CONST LOGO = 1                   '' Bitmap ID
  37.  
  38.  
  39.  
  40. CONST QTW_NOINSTALL        = 0
  41. CONST QTW_INSTALL        = 1
  42.  
  43. '------------------------------------------------------------------------
  44. GLOBAL CuiDll$            '' Destination directory.
  45. GLOBAL DestDir$         '' Destination directory.
  46. GLOBAL SrcDir$            '' Source directory. 
  47. GLOBAL FilesDir$        '' Relative Path from SrcDir$ to Files
  48. GLOBAL AppDescription$        '' Description of the application  : a line of text that describe the application
  49. GLOBAL AppTitle$        '' Title that appear in all dialog box
  50. GLOBAL AppName$         '' Name of the application  : on 8 letters use for pathname
  51. GLOBAL ProgName$        '' CDROM exe access : on 8 letters (no extension .EXE)
  52. GLOBAL DefaultDestDir$        '' Default destination directory
  53. GLOBAL ProgTag$         '' Tag in program group (or application name for windows user)
  54.  
  55. GLOBAL iCur%
  56. GLOBAL PathWindowsSystem$
  57. GLOBAL PathWindows$
  58. GLOBAL QtwCurrentVersion$    
  59. GLOBAL QtwInstalled%
  60. GLOBAL APPNEEDS$        ''Disk space costs per drive
  61. GLOBAL EXTRACOSTS$        ''List of extra costs to add per drive
  62. GLOBAL ReadMe$
  63.  
  64.  
  65. '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  66. FilesDir$ = "SETUP"
  67. APPNEEDS$        = "AppNeeds"
  68. EXTRACOSTS$        = "ExtraCosts"
  69. PathWindowsSystem$    = GetWindowsSysDir
  70. PathWindows$        = GetWindowsDir
  71. FirstHDLetter$        = "C:\"
  72.  
  73. '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  74. '+++++++++++++++++++++++CAN BE MODIFIED+++++++++++++++++++++++++++++++++++
  75. '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  76. AppDescription$     = "Nature Interactive"
  77. ProgTag$            = "Nature Interactive"
  78. AppTitle$            = "Nature Interactive"
  79. AppName$            = "NATINT"
  80. ProgName$            = "NATURE INTERACTIVE"
  81.  
  82. '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  83. QtwCurrentVersion$    = "2.0.1.41"
  84. ReadMe$         = "lisezmoi.txt"   
  85.  
  86.  
  87. '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  88. '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  89. '+++++++++++++++++++++++++++++++ S T A R T +++++++++++++++++++++++++++++++
  90. '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  91. '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
  92.  
  93.  
  94. INIT:
  95. '-----------------------initialisation------------------------------------
  96. '    i% = SetSizeCheckMode(scmOff)
  97.     CuiDll$ = "mscuistf.dll"            ''Custom user interface dll
  98.  
  99.     'SetBitmap CuiDll$, LOGO
  100.     SetTitle AppTitle$
  101.     i% = ShowMaxWindow(HwndFrame())
  102.  
  103. '-----------------------special things------------------------------------
  104.     FOR i% = 1 TO 26 STEP 1
  105.         AddListItem EXTRACOSTS$, "16384"
  106.     NEXT i%
  107.  
  108. '-----------------------get first hard drive------------------------------
  109.  
  110.     GetLocalHardDrivesList "HardDrives"
  111.     NumDrives% = GetListLength("HardDrives")
  112.     IF  NumDrives% > 0  THEN
  113.         FirstHDLetter$ = GetListItem("HardDrives", 1) + ":\"
  114.     END IF
  115.  
  116.     DefaultDestDir$ = FirstHDLetter$ + AppName$
  117.         DestDir$ = DefaultDestDir$
  118.  
  119.     CDStat%  = CD_FIRSTINSTALL
  120.     QTWStat% = QTW_INSTALL
  121.  
  122.  
  123. '-----------------------Windows 3.1 or better-----------------------------
  124.     IF GetWindowsMajorVersion() < 3 THEN
  125.         SetSymbolValue "DLGTITLE", AppTitle$
  126.         sz$ = UIStartDlg(CuiDll$, NOGOODWINVER, "FInfoDlgProc", 0, "")
  127.         UIPopAll
  128.         ERROR STFERR
  129.     END IF
  130.  
  131.     IF GetWindowsMajorVersion() = 3 AND GetWindowsMinorVersion() < 10 THEN
  132.         SetSymbolValue "DLGTITLE", AppTitle$
  133.         sz$ = UIStartDlg(CuiDll$, NOGOODWINVER, "FInfoDlgProc", 0, "")
  134.         UIPopAll
  135.         ERROR STFERR
  136.     END IF
  137.  
  138. '-----------------------Resolution----------------------------------------
  139. '    IF Has640(HwndFrame()) = 0 THEN
  140. '        SetSymbolValue "DLGTITLE", AppTitle$
  141. '        sz$ = UIStartDlg(CuiDll$, NOGOODRESO, "FInfoDlgProc", 0, "")
  142. '        UIPopAll
  143. '        ERROR STFERR
  144. '    END IF
  145.  
  146. '-----------------------Colors--------------------------------------------
  147. '    if Has256(HwndFrame()) = 0 THEN
  148. '        SetSymbolValue "DLGTITLE", AppTitle$
  149. '        sz$ = UIStartDlg(CuiDll$, NOT256, "FInfoDlgProc", 0, "")
  150. '        UIPopAll
  151. '        ERROR STFERR
  152. '    END IF
  153. '-----------------------Sound card---------------------------------------   
  154.     IF HasWave() = 0 THEN
  155.         SetSymbolValue "DLGTITLE", AppTitle$
  156.         sz$ = UIStartDlg(CuiDll$, NOWAVE, "FInfoDlgProc", 0, "")
  157.         UIPopAll
  158.         ERROR STFERR
  159.     END IF
  160.  
  161.     SetSymbolValue "DLGTITLE", AppTitle$
  162.     sz$ = UIStartDlg(CuiDll$, WELCOME, "FInfoDlgProc", 0, "")
  163.     UIPop 1
  164.     IF sz$ <> "CONTINUE" THEN
  165.         ERROR QUITNOMESSAGE
  166.     END IF
  167.  
  168.  
  169. '-----------------------read main.inf-------------------------------------
  170.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  171.     IF szInf$ = "" THEN
  172.         szInf$ = GetSymbolValue("STF_CWDDIR") + "NATURE.INF"
  173.     END IF
  174.     ReadInfFile szInf$
  175.  
  176. '-----------------------QuickTime-----------------------------------------
  177.     
  178.     j% = InstallQTW
  179.  
  180. '-----------------------Create Group--------------------------------------
  181.     CreateProgmanGroup AppDescription$, "", cmoVital
  182.     ShowProgmanGroup   AppDescription$, 1, cmoVital
  183. '    CreateProgmanItem  AppDescription$, "Nature interactive", MakePath(GetSymbolValue("STF_SRCDIR"),"NATURE.EXE"), MakePath(GetSymbolValue("STF_SRCDIR"), "NATURE.ICO") + ",,,,,", cmoOverwrite
  184.     CreateProgmanItem  AppDescription$, "Nature interactive", MakePath(GetSymbolValue("STF_SRCDIR"),"NATURE\NATURE.EXE"),"",  cmoOverwrite
  185. '    CreateProgmanItem  AppDescription$, "Lisez-moi", "NOTEPAD.EXE " + MakePath(GetSymbolValue("STF_SRCDIR"),Readme$), "", cmoOverwrite
  186.  
  187.     GOTO QUIT
  188.  
  189.  
  190.  
  191. '*************************************************************************
  192. '*************************************************************************
  193. '******************************* E N D ***********************************
  194. '*************************************************************************
  195. '*************************************************************************
  196.  
  197.  
  198.  
  199. '------------------------------------------------------------------------
  200. QUIT:
  201.     ON ERROR GOTO OUTPROG
  202.     IF ERR = 0 THEN
  203.         SetSymbolValue "DLGTITLE", AppTitle$
  204.         sz$ = UIStartDlg(CuiDll$, EXITSUCCESS, "FInfoDlgProc", 0, "")
  205.         UIPop 1
  206.         
  207.         IF QtwInstalled% = QTW_INSTALL THEN
  208.             SetSymbolValue "DLGTITLE", AppTitle$
  209.             sz$ = UIStartDlg(CuiDll$, WANTRESTART, "FInfoDlgProc", 0, "")
  210.             UIPop 1
  211.             IF sz$ = "CONTINUE" THEN
  212.                 s% = RestartWindows()
  213.             ENDIF
  214.         ENDIF
  215.             GOTO OUTPROG
  216.     ELSEIF ERR = STFQUIT THEN
  217.         dlg% = EXITQUIT
  218.     ELSEIF ERR = QUITNOMESSAGE THEN
  219.         GOTO OUTPROG
  220.     ELSE
  221.         dlg% = EXITFAILURE
  222.     END IF
  223. QUITL1:
  224.     SetSymbolValue "DLGTITLE", AppTitle$
  225.     sz$ = UIStartDlg(CuiDll$, dlg%, "FInfoDlgProc", 0, "")
  226.     UIPop 1
  227.  
  228. '------------------------------------------------------------------------
  229. OUTPROG:
  230.     END
  231.  
  232. '------------------------------------------------------------------------
  233.  
  234.  
  235. FUNCTION InstallQTW STATIC AS INTEGER
  236.     QtwInstalled% = QTW_NOINSTALL
  237.     j% = FindOld()
  238.     IF j% = 1 THEN
  239.         SetSymbolValue "DLGTITLE", AppTitle$
  240.         sz$ = UIStartDlg(CuiDll$, FINDQTW, "FInfoDlgProc", 0, "") 
  241.         UIPop 1 
  242.         IF sz$ <> "CONTINUE" THEN
  243.             ERROR STFERR
  244.         ENDIF 
  245.     ELSEIF j% = 2 THEN  ' version correcte
  246.         EXIT FUNCTION
  247. '    ELSE
  248. '        SetSymbolValue "DLGTITLE", AppTitle$
  249. '        sz$ = UIStartDlg(CuiDll$, NOQTW, "FInfoDlgProc", 0, "") 
  250. '        UIPop 1
  251.     END IF
  252.  
  253.     ClearCopyList
  254.     SrcDir$ = MakePath(GetSymbolValue("STF_SRCDIR"),FilesDir$)
  255.     AddSectionFilesToCopyList "QTSYS", SrcDir$, PathWindowsSystem$
  256.  
  257.     CopyFilesInCopyList
  258.  
  259.     rem Update WIN.INI and SYSTEM.INI
  260.  
  261.     i% = WritePrivateProfileString("MCI", "QTWVideo", MakePath(PathWindowsSystem$, "mciqtw.drv"), "SYSTEM.INI")
  262.     CreateIniKeyValue MakePath(GetWindowsDir(), "SYSTEM.INI"), "drivers", "VIDC.MSVC", "MSVIDC.DRV", cmoOverwrite
  263.  
  264.     rem Create QTW.INI
  265.     ini$ = MakePath(PathWindows$, "QTW.INI")
  266.     CreateIniKeyValue ini$, "QuickTime for Windows", "Implementation", "Full" , cmoOverwrite
  267.     RemoveIniKey ini$, "video", "optimize", cmoNone
  268.     QtwInstalled% = QTW_INSTALL
  269.  
  270. END FUNCTION
  271.  
  272.  
  273. '------------------------------------------------------------------------
  274. FUNCTION FindOld STATIC AS INTEGER
  275.  
  276.  
  277.     FindOld = 0
  278.     cursor% = ShowWaitCursor()
  279.     FilePath$ = FindFileUsingFileOpen(MakePath(GetWindowsSysDir(),"qtim.dll"))
  280.     RestoreCursor cursor%
  281.     IF (FilePath$ <> "") THEN
  282.         FindOld = 1
  283.         szVersion$ = GetVersionOfFile(FilePath$)
  284.  
  285.         IF  szVersion$ > QtwCurrentVersion$ OR szVersion$ = QtwCurrentVersion$ THEN
  286.             FindOld = 2
  287.         END IF
  288.         EXIT FUNCTION
  289.     END IF
  290. END FUNCTION
  291.  
  292.  
  293.  
  294. '
  295. '
  296. '*************************************************************************
  297. '** Purpose:
  298. '**     Appends a file name to the end of a directory path,
  299. '**     inserting a backslash character as needed.
  300. '** Arguments:
  301. '**     szDir$  - full directory path (with optional ending "\")
  302. '**     szFile$ - filename to append to directory
  303. '** Returns:
  304. '**     Resulting fully qualified path name.
  305. '*************************************************************************
  306.  
  307. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  308.     IF szDir$ = "" THEN
  309.         MakePath = szFile$
  310.     ELSEIF szFile$ = "" THEN
  311.         MakePath = szDir$
  312.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  313.         MakePath = szDir$ + szFile$
  314.     ELSE
  315.         MakePath = szDir$ + "\" + szFile$
  316.     END IF
  317. END FUNCTION
  318.